<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    

<script>
// 在JS中一切皆对象
// 所有对象可以分为两种对象: 普通对象和函数对象
// 普通对象: String实例 Number实例 Boolean实例 {} []等
// 函数对象: function

// __proto__原型(隐式原型)
// 所有对象都有一个隐藏属性__proto__属性(打印对象时不能直接看到该属性)
// 对象的__proto__属性值指向创建该对象的构造函数的prototype属性
// __proto__属性的作用: 维护原型链

var str = 'hello';
var num = 123;
var boo = true;
var obj = {a:123};
var arr = [1,2,3];
var fun = function (){};
function Human(n){
    this.name = n;
}
var yhj = new Human('严海静');

console.log( str.__proto__ );// String.prototype
console.log( num.__proto__ );// Number.prototype
console.log( boo.__proto__ );// Boolean.prototype
console.log( obj.__proto__ );// Object.prototype
console.log( arr.__proto__ );// Array.prototype
console.log( fun.__proto__ );// Function.prototype
console.log( yhj.__proto__ );// Human.prototype

// 对象查找属性的顺序: 1.在对象自身查找 2.查找对象的__proto__ 3.一直查找到null

</script>
</body>
</html>